package com.fjw.controller;

import com.fjw.pojo.Cv;
import com.fjw.pojo.Result;
import com.fjw.service.CvService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;

/**
 * 简历管理控制器
 * 提供简历的增删改查RESTful接口
 */
@RestController
@RequestMapping("/cv")
public class CvController {

    @Autowired
    private CvService cvService;

    /**
     * 添加简历
     * @param cv 简历实体，JSON格式
     * @return 操作结果
     */
    @PostMapping("/add")
    public Result add(@RequestBody Cv cv){
        System.out.println(cv); // 打印请求参数（调试用）
        cvService.add(cv);
        return Result.success();
    }

    /**
     * 通过ID查询简历
     * @param id 简历ID（URL参数）
     * @return 简历实体
     */
    @GetMapping("/findById")
    public Result<Cv> findById(Integer id){
        System.out.println(id); // 打印请求参数（调试用）
        Cv res = cvService.findById(id);
        return Result.success(res);
    }

    /**
     * 通过作者ID查询简历列表
     * @param author 作者ID（对应User表主键）
     * @return 简历列表
     */
    @GetMapping("/findByAuthor")
    public Result<List<Cv>> findByAuthor(Integer author){
        System.out.println(author); // 打印请求参数（调试用）
        List<Cv> res = cvService.findByAuthor(author);
        return Result.success(res);
    }

    /**
     * 获取所有简历
     * @return 所有简历列表
     */
    @GetMapping("/getAll")
    public Result<List<Cv>> getAll(){
        List<Cv> res = cvService.getAll();
        return Result.success(res);
    }

    /**
     * 通过ID更新简历
     * @param cv 简历实体（需包含ID）
     * @return 操作结果
     */
    @PatchMapping("/updateById")
    public Result updateById(@RequestBody Cv cv){
        System.out.println(cv); // 打印请求参数（调试用）
        cvService.updateById(cv);
        return Result.success();
    }

    // 预留接口（未实现）
//    @GetMapping("/getByIds")
//    public Result<List<Cv>> getByIds()
}
